A machine vision system includes a collection of one or more vision processors (VPs) for at least processing and interpreting images, and optionally one or more user interfaces (UIs) for at least enabling a user to interact with and/or control a VP. Each VP is connected to one or more electronic cameras through which the VP “sees” its environment, i.e., acquires an image of a scene.
Referring to FIG. 1, the UI and the VP may coexist on the same computer platform, in which case the camera 11 is connected via acquisition circuitry 12 to a general purpose processor 13 (such as a microprocessor, digital signal processor, or CPU). The general purpose processor runs a program that implements a VP 14 and a UI 15 that communicate with one another via shared memory. The UI interfaces with a user using one or more input devices (such as a control pad, a keyboard, or a mouse) via input device circuitry 16 and provides a graphical display to the user on a display device (such as an LCD display or a computer monitor) via display circuitry 17.
Alternatively, the VP and the UI may exist on separate computer systems. This configuration shares the components of the single-computer vision system, but runs the VP on a different general purpose processor from the UI. Referring to FIG. 2, the camera 21 is connected via acquisition circuitry 22 to a general purpose processor 23. This processor runs a program that implements a VP 24 and communicates via communications circuitry 25 across a communications channel 26 (such as an RS232 serial connection or an ethernet connection) to the computer running the UI. The UI computer 32 houses a general purpose processor 28 that runs a program implementing the UI 29. The UI communicates with the VP computer via communications circuitry 27 and the communications link 26. A user may control the UI via one or more input devices connected to the input device circuitry 30 and view graphical output via display circuitry 31 on a display device.
Referring to FIG. 3, if the communications channel provides access to a network, several additional connection schemes are also possible: each UI 35 can communicate via that network 36 with one of many networked VPs 37, 38, 39. When a user (either a developer who will configure a VP for a specific vision task, or an operator who will monitor the system during the operation phase) desires to communicate with a particular VP, the user selects the new VP from a list provided by the UI and instructs the UI to establish a connection. In this way, many UIs may control each VP, and each UI may control many VPs. A collection of VPs may work together to solve a complex vision problem—in this case the each VP in the collection solves a particular subset of the overall vision problem.
There are three modes of operation of a vision system, during which different actions take place on the UI and VP:
1. Connection—using the UI, the developer or the operator selects a VP from a list of all available VPs, possibly displayed in a menu by the UI. The UI establishes initial communications with the VP. The connection phase establishes data communications between the UI and the VP. One embodiment of such a data connection is an application layer connection (possibly using a client/server model) in the OSI communication model. Configuration—through the UI, the developer configures the connected VP for a specific vision task.
2. Operation—the VP executes the sequence of functions defined by the developer during the configuration phase. The UI may be used by an operator to monitor the outputs of the VP, or may be disconnected from the VP, allowing the VP to run standalone.
With reference to FIG. 4, when designing a vision application, a developer typically connects to a specific VP 41 and then performs one or more cycles of configuration 42 and operation 43. After the developer is satisfied with the configuration of the first VP, the developer may connect to a second VP 44 and complete a cycle of configuration 45 and operation 46 of that system. This process may be repeated for additional VPs.
Once the developer has properly configured the vision system, an operator will monitor the functioning system and notify the developer of problems with the vision system configuration that must be corrected. The operator may only make changes to parameters in the system configuration to maintain the functioning of the vision system. For example, the operator may specify a region of interest of an image to guide the behavior of VP functions. In order to make the system accessible to the operator, the developer must implement visual feedback and allow constrained user interaction.
However, known UIs have a critical limitation: when monitoring a multi-VP vision system, the operator of the system must explicitly select each VP for observation, and must therefore posses developer-level knowledge of the structure and organization of the entire multi-VP vision system. To adjust the parameters of a multi-VP vision system, the operator must understand how the vision application is distributed among the plurality of VPs of the vision system so that parameters on each VP may be observed and modified as appropriate. It is very burdensome for an operator to satisfy this requirement, and it is also burdensome for a developer to attempt to reduce the burden on the operator as part of the development task.